package 数据结构练习.summer;

import java.util.Random;

public class day5 {
    /*
    给定一个非负整数 num，反复将各个位上的数字
    相加，直到结果为一位数。返回这个结果。
     */
    public int addDigits(int num) {
        int result = 0;
        while (num > 9) {
            //将一个数的各个位相加
            while (num > 0) {
                result += num % 10;
                num = num / 10;
            }
            num = result;
            result = 0;
        }
        return num;
    }


    /*猜数字游戏的规则如下：

每轮游戏，我都会从1到n 随机选择一个数字。 请你猜选出的是哪个数字。
如果你猜错了，我会告诉你，你猜测的数字比我选出的数字是大了还是小了。
你可以通过调用一个预先定义好的接口 int guess(int num) 来获取猜测结果，返回值一共有 3 种可能的情况（-1，1或 0）：
-1：我选出的数字比你猜的数字小 pick < num
1：我选出的数字比你猜的数字大 pick > num
0：我选出的数字和你猜的数字一样。恭喜！你猜对了！pick == num
返回我选出的数字。
     */
    public int guessNumber(int n) {
        int flag = 1;
        int max = n;
        int min = 1;
        int r = 0;
        Random rand = new Random();
        while (flag == -1 || flag == 1) {
            r = rand.nextInt(max - min + 1) + min;
//                flag=guess(r);//这里没有提供这个方法
            if (flag == 1) {
                min = r;
            } else if (flag == -1) {
                max = r;
            } else {
                break;
            }
        }
        return r;
    }
}
